SIMPLIFYING CONCURRENT PROGRAMMING IN SENSORNETS WITH THREADING pdfauthor
نویسندگان
چکیده
Wireless sensor networks (sensornets) are deeply embedded, resource constrained, distributed systems. Sensornets are generally developed in an interrupt(or event-) driven programming model. Writing event-driven programs is hard. Sensornets are generally battery powered, desiring event-driven executions, for power efficiency. This thesis presents TinyThread a safe, lightweight threading model which enables sensornet development using procedural programming. TinyThread allows developers to intermix event-driven programming with threaded programming. This frees developers to use whichever programming paradigm is preferred for a specific algorithm. TinyThread operates in the context of TinyOS allowing the concurrency detection mechanism of TinyOS to aid developers. TinyThread includes a stack analysis tool, stacksize which computes all the necessary resource requirements. This cross-platform stack analysis tool enables TinyThread to operate safely across several hardware platforms. TinyThread is completely modular, so only the components required need be included. TinyThread is validated through several experiments testing its power consumption, response time and resource usage.
منابع مشابه
Threading by Appointment
We propose a concurrent programming model called threading-by-appointment (TAP). Unlike traditional threads, TAP threads can only communicate with system components or other threads by appointment. For example, a TAP thread cannot simply try to access some shared resource. Instead, a TAP thread must make an appointment with the shared resource in advance. Only at the time of the appointment, th...
متن کاملEfficient parallelization of the genetic algorithm solution of traveling salesman problem on multi-core and many-core systems
Efficient parallelization of genetic algorithms (GAs) on state-of-the-art multi-threading or many-threading platforms is a challenge due to the difficulty of schedulation of hardware resources regarding the concurrency of threads. In this paper, for resolving the problem, a novel method is proposed, which parallelizes the GA by designing three concurrent kernels, each of which running some depe...
متن کاملExploring Lua for Concurrent Programming
The popularization of multi-core processors and of technologies such as hyper-threading demonstrates a fundamental change in the way processors have been evolving and also increases interest in concurrent programming, particularly as a means to improve software performance. However, concurrent programming is still considered complex, mostly due to difficulties in using the available programming...
متن کاملConcurrent Programming Constructs in Multi-Engine Prolog
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of parallel programming constructs aware of the fundamental invariant of today’s typical computer architectures: the presence of a few independent cores. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multithreading A...
متن کاملGenerating CSP Models of Threaded Java Programs
Communicating Sequential Processes (CSP) is a language for understanding concurrent behaviour 1]. This paper discusses how and why we might construct a CSP model of a Java program and looks at some of the problems involved that require further research.. .. Java provides support for threading but cannot protect the user from the pitfalls associated with concurrent programming. Tracking down bug...
متن کامل